import typescript from 'rollup-plugin-typescript2';
import { nodeResolve } from '@rollup/plugin-node-resolve';
import path from 'path';
import vue from 'rollup-plugin-vue';
import { terser } from 'rollup-plugin-terser';
import pkg from '../package.json';
const deps = Object.keys( pkg.devDependencies );
/**
 * es 组件全打包
 */
export default {
  input: path.resolve( __dirname, '../packages/fow-code-ui/index.ts' ),
  output: {
    format: 'es',
    file: 'lib/index.esm.js',
  },
  plugins: [
    terser(), // 压缩js代码，包括es6代码压缩
    nodeResolve(), // 自动找index文件
    vue( {
      target: 'browser',
      css: false,
      exposeFilename: false,
    } ),
    typescript( { // 默认调用tsconfig.json  帮我们生成声明文件
      tsconfigOverride: {
        include: [ // 包含
          'packages/**/*',
          'typings/vue-shim.d.ts',
        ],
        exclude: [ // 排除
          'node_modules',
          'packages/**/__tests__/*',
          'website'
        ]
      },
      abortOnError: false,
    } )
  ],
  external ( id ) { // 排除
    return /^vue/.test( id )
      || deps.some( k => new RegExp( '^' + k ).test( id ) )
  },
}
